The increasing use of cloud-based computer services has seen the growth of remote application servers (i.e., interactive television servers) that communicate with remote client devices. End-users may interact with a software application executing on a remote application server by interacting with a graphics display created on the user's remote client device. The user's commands (e.g., keyboard, mouse, gesture, and/or remote-control commands) are relayed back to the remote application server. However, the implementation of this paradigm involves more than simply establishing a low-latency (i.e., low-delay) link between a screen, its control devices (e.g., a client device), and a remote application server, as can be seen by considered the role of buffers in such systems.
Buffer size affects many aspects of a data communication system. For example, a typical first-in, first-out (FIFO) buffer of short length will result in a shorter delay on the data emerging from the output of the buffer than a buffer of greater length. This shorter delay, also known as lower latency, is beneficial to displaying interactive content on a screen with which a user is actively interacting. Conversely, a longer buffer is beneficial for receiving continuously playing multimedia content when the immediate start of the content is not essential to maintaining a high-quality user experience. Because of the long length of the buffer, fewer individual transmissions need to be made by the remote application server, reducing the server's workload. Conversely, the higher latency of a longer buffer can degrade the user's perception of the interactive experience.
If the user were simply interacting with a static menu image on a display screen connected to a client device, a single short buffer would be best. Conversely, if the user were simply watching a video program with no interaction, a long buffer would maximize the efficiency of the system. However, modern interactive systems frequently combine both data types. For example, interactive menus with video presented in one or more windows are a common part of an interactive television user interface. Hence, there is a need to improve (e.g., optimize) how multiple data types are managed for an improved (e.g., optimal) user experience. Such an improved interactive system represents an unmet need for interactive television systems currently in service, whether the systems are traditional cable television systems or systems that deliver content via the Internet.